Boost 库uuid 的使用 | 您所在的位置:网站首页 › boost to › Boost 库uuid 的使用 |
UUID 简介
通用唯一识别码(英语:Universally Unique Identifier,简称UUID)是一种软件建构的标准,亦为开放软件基金会组织在分布式计算环境领域的一部分。 uuid 版本先看几个例子 Nil/Empty: 00000000-0000-0000-0000-000000000000 UUID v1 : 16824f40-aec1-11e8-a69c-f7a44da04f19 UUID v4 : be1f4811-fd38-4bde-933a-1314dea3e436 UUID v5 : c296b0ad-4d8d-5878-97f6-ae9430684dffUUID 的第三段的第一个字符,表示UUID的版本号,到目前,有5个版本。 UUID_v1 : 使用MAC 地址和戳来生成,在过去,唯一性非常好,但是会暴露生成者的主机信息,据说历史上有因UUID v1的使用导致生成者被攻击的。在服务器网卡MAC基本都是随机出来的今天,比较少见了。 UUID_v2 : 类似 v1, 增加了 DEC security, 因为这个版本没有提供任何实现细节,所以很多的实现都是实现了自己的 v2 版uuid。 UUID_v3&v5: 这两个版本都是使用一个指定的UUID作为命名空间,然后对一个给定的Name进行Hash 之后生成 UUID, 相同命名空间和相同名称生成出来的UUID是相同的,v3和v5 的区别是, v3 使用MD5 ,而v5 使用 sha1。 UUID_v4 :这个版本就是使用随机数生成UUID。一般算法都是使用随机数填充整个UUID,然后修改版本位及其它的几个位。boost 库实现了 UUID 的v4 和 v5. 头文件使用boost库的uuid,一般需要三个头文件 头文件 定义了 UUID 的类型 头文件 实现了几种UUID的生成算法 头文件 实现了UUID 类型的流操作 示例源代码: #include #include #include #include #include #include #include #include namespace uuids = ::boost::uuids; void compare(const uuids::uuid &l, const uuids::uuid& r) { std::ostringstream ss; ss |
CopyRight 2018-2019 实验室设备网 版权所有 |